package demo1216.pm;

/*
自动装箱和自动拆箱(在编译期完成的事情)
1.从java 5.0版本以后加入到了 autoboxing功能
2.自动“拆箱”和装箱时依靠jdk5的编译器在编译期的“预处理”工作

自动装箱:把基本数据类型转换为对应的包装类类型.
自动拆箱:把包装类类型转换为基本数据类型.

自动装箱: Integer num = Integer.valueOf(int);
自动拆箱: int  intValue();
 */
public class Demo_05 {
    public static void main(String[] args) {
        /*
        自动装箱:有一个缓冲池 [-128~127],只要在该范围内,直接取出
        超过该范围,就会创建对象.
         */
        Integer num1 = 200;
        Integer num2 = 200;
        Integer num3 = new Integer(200);
        System.out.println(num1==num2);
        System.out.println(num3==num2);
        demo01();
    }

    public static void demo01() {
        Integer num = 100;//自动装箱 Integer.valueOf(100)
        int a = num;//自动拆箱 num.intValue()
        /*
        num先进行自动拆箱转换为基本数据类型int
        作为加法运算,得到int类型的值,再进行自动装箱.
         */
        Integer sum = a + num;
        System.out.println(a == num);//true
//只要和基本数据类型是做运算,自动拆箱
    }
}
